package com.gem.day18;

import org.junit.Assert;
import org.junit.Test;

/**
 * 本类用来演示Java单元测试注解
 * 
 * @author easonsy
 * 2020年8月13日 下午2:30:12
 */
public class JUnitDemo {
	//测试注解
	//@Test

	//timeout表示本测试需要在1秒之内完成,如果超时,即使功能正确,测试任然不通过
	//@Test(timeout = 1000)

	//expected表示测试该方法时必须抛出指定异常,才算测试成功
	@Test(expected = ArithmeticException.class)
	public void test() {
		Calc calc = new Calc();
		int r = calc.div(9, 0);
		/*try {
			Thread.sleep(1500);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}*/
		/*
		 * 注意:
		 * 单元测试如果通过(显示绿条),说明代码无编译错误,本次运行无异常,
		 * 不能说明代码绝对无异常,并且更不能说明代码逻辑是正确的.
		 * 
		 * 如果要精确测试,必须使用JUnit + hamcrest,使用断言(Assets)来测试
		 */
		//System.out.println(r);

		//断言
		Assert.assertEquals(3, r);
	}
}

class Calc {
	public int div(int i, int j) {
		return i / j;
	}
}
